--
--   Title: Nishan Common MIB
--   Description: Nishan Enterprise MIB for Fibric Channel Platform
--   Version 1.0
--
--  Revision history:
--
--  2/14/99: initial version created.
--   
--  4/25/01: minor corrections to compile without warnings in SMICng. 
--
--  11/14/02: Addition of nishanCommonAuthDevicesGroup and tables to authenticate 
--            iSCSI device logins with RADIUS servers.
--
--  02/11/03: Changed comment lines to support HP NNM. i.e replace "-" with "=".
--
-- Groups in the Nishan Fabric Channel PRODUCT MIB
--
-- NOTE: Common Groups are those defined without dependence upon the
--       underlying hardware or architecture.
--
--       Architecture Groups provide visibility to architecture
--       specific items such as:
--               Stackability
--               Number of ports per unit
--               Number of slots per unit
--               Number of units per stack
--               Architecture specific statistics
--
--       Chip Groups provide visibility to hardware specific items
--       such as:
--               Reading/Writing registers within the switch ASIC
--               Exposing modes of the chip which are not used normally
--                 
--
-- The following groups are supported for the Nishan Enterprise MIB:
--    nishanCommonGroup            Common groups
--       | nishanCommonVerGroup    Retrieve version information   
--       | nishanCommonIPGroup     Configure and retrieve IP connectivity items   
--       | nishanCommonAuthGroup   Configure trusted SNMP hosts, communities and RADIUS servers
--       | nishanCommonTrapGroup   Configure SNMP traps
--       | nishanCommonLoadGroup   Configure file download/upload parameters           
--       | nishanCommonMiscGroup   Configure and retrieve miscellaneous items   
--
--    nishanArchGroup              Architecture specific groups
--       | nishanArchIfaceGroup    Configure and retrieve interface info       
--
--    nishanChipGroup              Chipset specific groups
--

        NISHAN-COMMON-MIB DEFINITIONS ::= BEGIN

        IMPORTS 
            MODULE-IDENTITY,
            OBJECT-TYPE,
            Counter32,
            IpAddress                            FROM SNMPv2-SMI
            DisplayString                        FROM RFC1213-MIB
            nishan                               FROM NISHAN-SMI
            InetAddressType,
            InetAddress                          FROM INET-ADDRESS-MIB;
            
        nishanCommon     MODULE-IDENTITY
        LAST-UPDATED      "200302110000Z"
        ORGANIZATION      "Nishan Systems, Inc"
        CONTACT-INFO      "Nishan Systems, Inc
                Attn: Network Management
                3850 North First Street
                San Jose, CA 95134
                USA
                Tel : +1 408 519-3700
                email : snmp@nishansystems.com"
        DESCRIPTION   "The private MIB for Nishan Switch Management"
        REVISION          "0101010000Z"
        DESCRIPTION
            "Initial public release of this MIB module"
    ::=  {  nishan  2  }

        -- "MacAddress"
        --    A 6 octet address in the "canonical" order defined by IEEE
        --    802.1a, i.e., as if it were transmitted least significant
        --    bit first.

        MacAddress ::= OCTET STRING (SIZE (6)) 
                               
        --
        -- Textual Conventions
        -- (i.e., these conventions do not affect object encoding)
        --
        -- "DURABLE" (Non-Standard):
        --    Objects that are saved across a system reset and/or power cycle
        --    are noted as "DURABLE" for convenience in the DESCRIPTION
        --    section of the object definition.  
        --
        --    To define "DURABLE" object "factory default values", use the
        --    following rules to modify the "DURABLE line(s) in the DESCRIPTION
        --    section of the object definition (see examples below):
        --     1.  Curly braces(i.e., '{', '}') containing the default value(s)
        --         must follow '"DURABLE:' separated by a space or start on
        --         the next line.
        --     2.  There must be a space separating the curly brace (left
        --         or right) and the default value(s).
        --     3.  Strings are denoted using single quotes (e.g., 'public').
        --         Do NOT use single or double quotes within a string.  Strings
        --         also must NOT include curly braces.
        --     4.  Decimal INTEGER values must NOT use single quotes.
        --         Hexadecimal and binary values MUST use single quotes
        --         followed by a lower or upper case character to indicate
        --         hexadecimal (h) or binary (b) (e.g., 'FACE'H).
        --     5.  The default value may span more than one line (i.e., parser
        --         looks for the closing curly brace).  Extra white space will
        --         be removed.  If possible, to avoid confusion, put the
        --         default value on a single line.
        --     6.  Multiple default values can be included within the curly 
        --         brace set.  Multiple values must be separated using commas
        --         with no preceding or succeeding spaces; it is OK to use
        --         a 'Return' after the comma to allow the new item to start 
        --         on the next line.  Do NOT use a comma after the last
        --         default value.
        --     7.  To set all values use ':all' after parameter (e.g., 
        --         enable:all).  If ':all' is used on the last value (e.g.,
        --         enable,enable,disable:all), the remaining items are set
        --         to the last supplied value.
        --     8.  The actual DESCRIPTION text should start on the next line
        --         after DURABLE: or, if a default value is used, the next
        --         line after the right curly brace for the default value.
        --     9.  DURABLE objects WITHOUT an explicit factory default value
        --         in curly braces, default to zero, NULL, or the lowest
        --         enumerated value.  This also applies to the remaining
        --         table entries when only some of the defaults are defined.
        --
        --    Valid Examples:
        --      decimal INTEGER examples:
        --         "DURABLE: { 60 }                   ;single default
        --         "DURABLE: { 1,3,7,11 }             ;4 defaults
        --         "DURABLE: { 60:all }               ;all entries use 60
        --         "DURABLE: { 1,2,30:all }           ;3rd thru end use 30
        --      hexadecimal INTEGER examples:
        --         "DURABLE: { 'face'h }
        --         "DURABLE: { 'face'H }
        --         "DURABLE: { 'face'H:all }
        --         "DURABLE: { 'deaf'h,'face'h }      ;2 defaults
        --      binary INTEGER examples:
        --         "DURABLE: { '10101111'b }
        --         "DURABLE: { '0010110100101101'B }
        --      enumerated value examples:
        --         "DURABLE: { disable }
        --         "DURABLE: { enable,enable }        ;2 defaults
        --         "DURABLE: { enable:all }           ;enable all entries
        --         "DURABLE: { enable,disable:all }   ;enable 1st; disable rest
        --      MacAddress (OCTET STRING) example:
        --         "DURABLE: { '0123456789ab'H }
        --      OBJECT IDENTIFIER example:
        --         "DURABLE: { sysDescr }
        --      IpAddress example:
        --         "DURABLE: { 'c0210415'h }
        --      DisplayString examples:
        --         "DURABLE: { 'Nishan Product' }
        --         "DURABLE: { 'public','private' }   ;2 defaults; rest null
        --
        -- "NONVOLATILE" (Non-Standard):
        --    Objects that are saved across a system reset and/or power cycle
        --    and are not owned by this MIB are noted as "NONVOLATILE" for 
        --    convenience in the DESCRIPTION section of the object definition.  
        --    These objects eventually are defined "DURABLE" by some MIB in
        --    the system and are "passed through" in this MIB.  The same
        --    syntax rules apply to the NONVOLATILE as to the DURABLE.
        --


        -- ============================================================================        
        --  Sample Nishan FC Product Enterprise MIB  
        --  Reference Switch.
        --
        --  NOTE: Using Wind River enterprise ID (731) for illustration purposes
        --        The customer must replace 731 with the registered
        --        enterprise identifier for his company and/or product
        --

        --
        -- Nishan Enterprise MIB Extensions
        --
        nishanCommonGroup              OBJECT IDENTIFIER ::= { nishanCommon 1 }
        nishanCommonVerGroup           OBJECT IDENTIFIER ::= { nishanCommonGroup 1 }
        nishanCommonIPGroup            OBJECT IDENTIFIER ::= { nishanCommonGroup 2 }
        nishanCommonAuthGroup          OBJECT IDENTIFIER ::= { nishanCommonGroup 3 }  
        nishanCommonTrapGroup          OBJECT IDENTIFIER ::= { nishanCommonGroup 4 }  
        nishanCommonLoadGroup          OBJECT IDENTIFIER ::= { nishanCommonGroup 5 }
        nishanCommonMiscGroup          OBJECT IDENTIFIER ::= { nishanCommonGroup 6 }
        nishanArchGroup                OBJECT IDENTIFIER ::= { nishanCommon 2 }
        nishanArchIfaceGroup           OBJECT IDENTIFIER ::= { nishanArchGroup 1 }
        nishanChipGroup                OBJECT IDENTIFIER ::= { nishanCommon 3 }
        --
        --
--
--  Common Group Begins
--
        --        
        -- Nishan Extension MIB, Version Group
        --
        -- This group enables the retrieval of version information for 
        -- various components in the system.
        --
        -- Some version numbers have the concept of "Major.Minor" designators.
        -- In these version numbers, the Major designator represents the
        -- primary release version, while the Minor designator represents
        -- the secondary version, incremented for bug-fixes or non-critical
        -- modifications.  For example, the version number 1.2 has "1" as
        -- the Major version number and "2" as the minor version number.
        --

        nishanCommonVerMIBMajor OBJECT-TYPE
            SYNTAX INTEGER(0..2147483647)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Get this MIB Major version number.  This number should 
                 match the Major version given in the documentation header
                 in the beginning text of this MIB."
            ::= { nishanCommonVerGroup 1 }

        nishanCommonVerMIBMinor OBJECT-TYPE
            SYNTAX INTEGER(0..2147483647)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Get this MIB Minor version number.  This number should 
                 match the Minor version given in the documentation header
                 in the beginning text of this MIB."
            ::= { nishanCommonVerGroup 2 }

        nishanCommonVerBootSWMajor OBJECT-TYPE
            SYNTAX INTEGER(0..2147483647)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Get the Boot Software Major version number.
                 This number references the Boot ROM module."
            ::= { nishanCommonVerGroup 3 }

        nishanCommonVerBootSWMinor OBJECT-TYPE
            SYNTAX INTEGER(0..2147483647)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Get the Boot Software Minor version number.
                 This number references the Boot ROM module."
            ::= { nishanCommonVerGroup 4 }

        nishanCommonVerAppSWMajor OBJECT-TYPE
            SYNTAX INTEGER(0..2147483647)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Get the Application Software Major version number.  
                 This number references the core modules as a whole."
            ::= { nishanCommonVerGroup 5 }

        nishanCommonVerAppSWMinor OBJECT-TYPE
            SYNTAX INTEGER(0..2147483647)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Get the Application Software Minor version number.  
                 This number references the core modules as a whole."
            ::= { nishanCommonVerGroup 6 }

        --
        -- Nishan Extension MIB, IP Connectivity Information         
        --
        -- This group is meant to be a collection of controls and data 
        -- that configure the device for IP connectivity.
        --

        nishanCommonIPMACAddr OBJECT-TYPE
            SYNTAX MacAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Get the agent MAC address."
            ::= { nishanCommonIPGroup 1 }

        nishanCommonIPIpAddress OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set IP Address for the device - only applies after reset - 
                 see nishanCommonMiscReset."
            ::= { nishanCommonIPGroup 2 }

        nishanCommonIPGateAddress OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set Gateway Address for the device - only applies after 
                 reset - see nishanCommonMiscReset."
            ::= { nishanCommonIPGroup 3 }

        nishanCommonIPNetMask OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set IP NetMask for the device - only applies after 
                 reset - see nishanCommonMiscReset."
            ::= { nishanCommonIPGroup 4 }

        nishanCommonIPStatus OBJECT-TYPE
            SYNTAX INTEGER {
                   notModified(1),
                   modified(2),
                   restore(3),
                   apply(4)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "This object is used to synchronize the modification of the IP
                parameters used by the protocol stack based on the
                nishanCommonIPGroup MIB objects.  This allows the user to change
                nishanCommonIPMACAddr, nishanCommonIPIpAddress, 
                nishanCommonIPGateAddress, and nishanCommonIPNetMask, and then apply
                the changes to the unit using apply(4).  If nishanCommonIPStatus
                returns not_modified(1), no modifications were made to any
                nishanCommonIPGroup MIB objects.  If nishanCommonIPStatus returns
                modified(2), one or more objects were changed, but have not
                been applied.  Both not_modified(1) and modified(2) are
                read-only values; the agent returns a SNMP_BADVALUE for sets
                using these values.  Both restore(3) and apply(4) are valid set
                values.  If one or more of the nishanCommonIPGroup objects were
                modified, the user can restore the parameters to a mirror of the
                NVM values using restore(3)."
            ::= { nishanCommonIPGroup 5 }

        nishanCommonIPIpAddressOnNextReset OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set IP Address for the device - only applies after reset - 
                 see nishanCommonMiscReset."
            ::= { nishanCommonIPGroup 6 }

        nishanCommonIPGateAddressOnNextReset OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set Gateway Address for the device - only applies after 
                 reset - see nishanCommonMiscReset."
            ::= { nishanCommonIPGroup 7 }

        nishanCommonIPNetMaskOnNextReset OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set IP NetMask for the device - only applies after 
                 reset - see nishanCommonMiscReset."
            ::= { nishanCommonIPGroup 8 }

        --
        -- Nishan Extension MIB, Authentication Group              
        --
        -- Here begins the community and host tables which
        -- provide security to the SNMPv1 agent.  SNMPv1
        -- typically has no security aspect.  These tables grant
        -- that ability to the agent.  This security aspect can
        -- be enabled or disabled through the nishanCommonMiscSnmpSecurity
        -- object in the nishanCommonMiscGroup.
        --
        -- The nishanCommonAuthHostTable lists the hosts which have access to
        -- the agent externally (nodes on the network).  These hosts must
        -- belong to one of the pre-defined communities in 
        -- nishanCommonAuthCommTable.
        --
        -- nishanCommonAuthCommTable is a list of valid communities
        -- recognized by the agent and the permissions of those
        -- communities as to READ or READ-WRITE.  READ permission
        -- grants to the member of a community the ability to
        -- GET information.  READ-WRITE permission grants to the member
        -- of a community the ability to GET and SET information. 
        --
        -- EXAMPLES:
        --
        --  A Representative Authentication Community Table....
        --
        --             nishanCommonAuthCommTable
        --                    
        --    Index  Name     Perm      State
        --   =====================================
        --   |  1  |public | 2 (RW) | 1 (enable) |
        --   =====================================
        --   |  2  |netman | 2 (RW) | 2 (disable)|
        --   =====================================
        --   |  3  |private| 1 (RO) | 2 (disable)|
        --   =====================================
        --   |     |       |        |            |
        --      .      .        .           .          
        --      .      .        .           .          
        --      .      .        .           .  
        --   |  7  |                |            |
        --   =====================================
        --   |  8  |admin  | 2 (RW) | 1 (enable) |
        --   =====================================
        --                                                     
        --  A Representative Authentication Host Table....
        --
        --                       nishanCommonAuthHostTable
        --                    
        --    Index  Name   CommName  IPAddress    IPMask        State
        --   ==============================================================
        --   |  1  |host1  |public  | 1.2.3.4  | 255.255.255.0|2 (disable)|
        --   ==============================================================
        --   |  2  |host2  |public  | 1.2.2.4  | 255.255.255.0|1 (enable) |
        --   ==============================================================
        --   |  3  |ntbox  |netman  | 2.3.4.5  | 255.255.255.0|1 (enable) |
        --   ==============================================================
        --   |  4  |sunbox |xyz     | 3.4.5.6  | 255.255.255.0|1 (enable) |
        --   ==============================================================
        --   |     |       |        |          |              |           |
        --      .      .        .         .          
        --      .      .        .         .          
        --      .      .        .         .  
        --   |  7  |       |        |          |              |           |
        --   ==============================================================
        --   |  8  |macbox |admin   | 4.3.2.1  | 255.255.255.0|3 (delete) |
        --   ==============================================================
        --
        --
        -- 1) "host1", which belongs to community "public" attempts access
        --     to the agent.  This access is disallowed because "host1" is
        --     disabled in the nishanCommonAuthHostTable.
        --
        -- 2) "ntbox", which belongs to community "netman" attempts access
        --    to the agent. This access is disallowed because the 
        --    community "netman" is disabled.
        --
        -- 3) "sunbox", which belongs to community "xyz" attempts access
        --    to the agent.  This access is disallowed because the 
        --    community "xyz" does not exist.
        --
        -- 4) "host2", which belongs to community "public" attempts SET access
        --    to the agent.  This access is permitted.
        --
        --

        nishanCommonAuthHostTableEntriesMax OBJECT-TYPE
              SYNTAX INTEGER (1..8)
              MAX-ACCESS read-write
              STATUS current
              DESCRIPTION
                  "NONVOLATILE: { 8 }
                   The maximum possible number of entries in the 
                   nishanCommonAuthHostTable. This value equates to the 
                   total number of trusted Hosts which potentially may 
                   be recognized."
              ::= { nishanCommonAuthGroup 1 }

        nishanCommonAuthCommTableEntriesMax OBJECT-TYPE
              SYNTAX INTEGER (1..8)
              MAX-ACCESS read-write
              STATUS current
              DESCRIPTION
                  "NONVOLATILE: { 8 }
                   The maximum possible number of entries in the 
                   nishanCommonAuthCommTable. This value equates to the 
                   total number of communities which potentially may 
                   be recognized."
              ::= { nishanCommonAuthGroup 2 }

        nishanCommonAuthCommTable OBJECT-TYPE
            SYNTAX SEQUENCE OF NishanCommonAuthCommEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A list of valid SNMP Community Entries."
            ::= { nishanCommonAuthGroup 3 }

        nishanCommonAuthCommEntry OBJECT-TYPE
            SYNTAX NishanCommonAuthCommEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A list of SNMP Community properties."
            INDEX { nishanCommonAuthCommIndex }
            ::= { nishanCommonAuthCommTable 1 }

        NishanCommonAuthCommEntry ::= SEQUENCE {
            nishanCommonAuthCommIndex             INTEGER,
            nishanCommonAuthCommName              DisplayString,
            nishanCommonAuthCommPerm              INTEGER,
            nishanCommonAuthCommState             INTEGER
        }

        nishanCommonAuthCommIndex OBJECT-TYPE
            SYNTAX INTEGER (1..8)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "An index that uniquely identifies an ordered entry in 
                 the SNMP Community Table."
            ::= { nishanCommonAuthCommEntry 1 }

        nishanCommonAuthCommName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..16))
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { 'public','private' } 
                 The name of this SNMP Community Entry, e.g. public."
            ::= { nishanCommonAuthCommEntry 2 }

        nishanCommonAuthCommPerm OBJECT-TYPE
            SYNTAX INTEGER {
                   permRO(1),
                   permRW(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { perm-ro,perm-rw }
                 The Read/Write (GET/SET) permission for the community. 
                 A (1) indicates perm-ro (GET) permission. A (2) indicates 
                 perm-wr (GET/SET) permission."
            ::= { nishanCommonAuthCommEntry 3 }

        nishanCommonAuthCommState OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2),
                   delete(3),
                   invalid(4)         -- read-only, set returns SNMP_BADVALUE
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { enable,enable,invalid:all }
                 The state of this community entry.  Enable (1) defines an
                 entry that is valid.  Disable (2) defines an entry that is
                 valid but not enabled.  Delete (3) removes an entry from the
                 table.  Invalid (4) defines an entry that is no longer valid
                 (e.g., an entry that was deleted) and should be ignored.  An 
                 attempt to set a value of invalid (4) causes the agent to
                 return SNMP_BADVALUE."
            ::= { nishanCommonAuthCommEntry 4 }

        nishanCommonAuthHostTable OBJECT-TYPE
            SYNTAX SEQUENCE OF NishanCommonAuthHostEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A list of valid SNMP Trusted Host Entries."
            ::= { nishanCommonAuthGroup 5 }

        nishanCommonAuthHostEntry OBJECT-TYPE
            SYNTAX NishanCommonAuthHostEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A list of SNMP Host properties."
            INDEX { nishanCommonAuthHostIndex }
            ::= { nishanCommonAuthHostTable 1 }

        NishanCommonAuthHostEntry ::= SEQUENCE {
            nishanCommonAuthHostIndex             INTEGER,
            nishanCommonAuthHostName              DisplayString,
            nishanCommonAuthHostCommName          DisplayString,
            nishanCommonAuthHostIpAddress         IpAddress,
            nishanCommonAuthHostIpMask            IpAddress,
            nishanCommonAuthHostState             INTEGER   
        }

        nishanCommonAuthHostIndex OBJECT-TYPE
            SYNTAX INTEGER (1..8)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "An index that uniquely identifies an ordered entry in 
                 the SNMP Trusted Host Table."
            ::= { nishanCommonAuthHostEntry 1 }

        nishanCommonAuthHostName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..16))
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE:
                 The name of this SNMP Trusted Host Entry, e.g. host1."
            ::= { nishanCommonAuthHostEntry 2 }

        nishanCommonAuthHostCommName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..16))
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE:
                 The name of this SNMP Trusted Host Entry's community, e.g.,
                 public."
            ::= { nishanCommonAuthHostEntry 3 }

        nishanCommonAuthHostIpAddress OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE:
                 The IP Address for the host. This identified host has
                 permission to access information in this device's
                 MIB tables, providing the SNMP security toggle is 
                 on (see nishanCommonMiscSNMPSecurity)."
            ::= { nishanCommonAuthHostEntry 4 }

        nishanCommonAuthHostIpMask OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { 'ffffff00'H }
                 The Network Mask for the trusted Host entry."
            ::= { nishanCommonAuthHostEntry 5 }

        nishanCommonAuthHostState OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2),
                   delete(3),
                   invalid(4)         -- read-only, set returns SNMP_BADVALUE
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { enable,invalid:all }
                 The state of this trusted host entry.  Enable (1) defines an
                 entry that is valid.  Disable (2) defines an entry that is
                 valid but not enabled.  Delete (3) removes an entry from the
                 table.  Invalid (4) defines an entry that is no longer valid
                 (e.g., an entry that was deleted) and should be ignored.  An 
                 attempt to set a value of invalid (4) causes the agent to
                 return SNMP_BADVALUE."
            ::= { nishanCommonAuthHostEntry 6 }

        -- Nishan Extension MIB, Authenticating device logins
        --
        -- This group configures parameters used to   
        -- authenticate devices, users, applications.
        
        --  A Representative RADIUS Authentication Table....
        --
        --                       nishanCommonAuthRadiusServerTable
        --                    
        --    Index   Type    AddressType  Address  Port   Credential   Timeout  Retries
        --   ============================================================================
        --   |  1  |Primary |   ipv4     | 1.2.3.4 | 1812| nishanLogin | 1s  |     2    |
        --   ============================================================================
        --   |  2  |Primary |   ipv4     | 4.2.3.1 |23412| nishanLogin | 1s  |     2    |
        --   ============================================================================
        --
        -- This table allows the ability to add more parameters per server if required
        -- in the future.
        --
        nishanCommonAuthDevicesGroup   OBJECT IDENTIFIER ::= { nishanCommonAuthGroup 6 }  
        
        nishanCommonAuthDevicesMaxRadiusServers   OBJECT-TYPE
              SYNTAX                              INTEGER (1..8)
              MAX-ACCESS                          read-only
              STATUS                              current
              DESCRIPTION
                  "The maximum possible number of entries in the 
                   nishanCommonAuthRadiusServerTable. This value equates to the 
                   total number of potential RADIUS servers that the switch
                   could authenticate the iSCSI logins against."
              DEFVAL          { 2 }
              ::= { nishanCommonAuthDevicesGroup 1 }
        
        nishanCommonAuthRadiusServerTable OBJECT-TYPE
            SYNTAX SEQUENCE OF NishanCommonAuthRadiusServerEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "This table lists the entries for the RADIUS servers, and is used by 
                the NISHAN TCP ports, which also act as a RADIUS clients, to authenticate 
                iSCSI logins from initiators. 
                
                The user can only modify the contents of the RADIUS server entries and 
                cannot create/delete server-rows. 
                
                For this release, the table has a primary and a secondary RADIUS server, 
                with the ip address initialized to 0.0.0.0."
            ::= { nishanCommonAuthDevicesGroup 2 }
        
        nishanCommonAuthRadiusServerEntry OBJECT-TYPE
            SYNTAX NishanCommonAuthRadiusServerEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A list of RADIUS Servers and their properties. To indicate that an entry 
                is not in use, set the nishanCommonAuthRadiusServerIPAddress to 0.0.0.0."
            INDEX { nishanCommonAuthRadiusServerIndex }
            ::= { nishanCommonAuthRadiusServerTable 1 }

        NishanCommonAuthRadiusServerEntry ::= SEQUENCE {
            nishanCommonAuthRadiusServerIndex       INTEGER,
            nishanCommonAuthRadiusServerType        INTEGER,  
            nishanCommonAuthRadiusServerAddressType InetAddressType,
            nishanCommonAuthRadiusServerIPAddress   InetAddress,
            nishanCommonAuthRadiusServerUdpPort     INTEGER,
            nishanCommonAuthRadiusServerCredential  OCTET STRING,
            nishanCommonAuthRadiusServerTimeout     INTEGER,
            nishanCommonAuthRadiusServerRetries     INTEGER
        }

        nishanCommonAuthRadiusServerIndex OBJECT-TYPE
            SYNTAX                        INTEGER (1..8)
            MAX-ACCESS                    read-only
            STATUS                        current
            DESCRIPTION
                "An index that uniquely identifies an ordered entry in 
                 the RADIUS servers table. The RADIUS client on the NISHAN switch
                 will contact all the primary RADIUS servers first sequentially and then
                 contact the secondary servers if the primary response fails."
            ::= { nishanCommonAuthRadiusServerEntry 1 }

        nishanCommonAuthRadiusServerType  OBJECT-TYPE
            SYNTAX                        INTEGER { primary(1), secondary(2) }
            MAX-ACCESS                    read-write
            STATUS                        current
            DESCRIPTION
                "DURABLE: {1:all}
                 The type of this RADIUS server, primary or secondary. The primary
                 RADIUS server is contacted first and if no response is received within
                 a timeout period, then the secondary server is contacted. Atleast one
                 of the servers should be set to primary."
            DEFVAL                        { primary }
           ::= { nishanCommonAuthRadiusServerEntry 2 }

        nishanCommonAuthRadiusServerAddressType OBJECT-TYPE
            SYNTAX                              InetAddressType 
            MAX-ACCESS                          read-write
            STATUS                              current
            DESCRIPTION
                "DURABLE: {1:ipv4}
                 The Inet address type of the RADIUS server. For now, only IPv4 is supported."
            DEFVAL                              { ipv4 }
            ::= { nishanCommonAuthRadiusServerEntry 3 }

        nishanCommonAuthRadiusServerIPAddress OBJECT-TYPE
            SYNTAX                            InetAddress 
            MAX-ACCESS                        read-write
            STATUS                            current
            DESCRIPTION
                "DURABLE:
                 The IP address of the RADIUS server to which this switch will send device-login
                 authentication requests. To indicate that this server is not in use, set the
                 value to 0.0.0.0"
            ::= { nishanCommonAuthRadiusServerEntry 4 }

        nishanCommonAuthRadiusServerUdpPort OBJECT-TYPE
            SYNTAX                            INTEGER (0..65535)
            MAX-ACCESS                        read-write
            STATUS                            current
            DESCRIPTION
                "DURABLE:
                 The UDP port on the RADIUS server to send the authentication
                 requests. RFC 2865 defaults this port to 1812, but could be different
                 for other implementations."
            DEFVAL                            { 1812 }
            ::= { nishanCommonAuthRadiusServerEntry 5 }

        nishanCommonAuthRadiusServerCredential OBJECT-TYPE
            SYNTAX                             OCTET STRING (SIZE (255))
            MAX-ACCESS                         read-write
            STATUS                             current
            DESCRIPTION
                "DURABLE:
                 The secret code defined by RFC 2865 to use to communicate with the
                 RADIUS server. Nishan switches only support CHAP authentication in 
                 SW release 3.1. This variable is not required for CHAP authentication."
            ::= { nishanCommonAuthRadiusServerEntry 6 }

        nishanCommonAuthRadiusServerTimeout   OBJECT-TYPE
            SYNTAX                            INTEGER (1..65535)
            MAX-ACCESS                        read-write
            STATUS                            current
            DESCRIPTION
                "DURABLE: {1}
                 The timeout value in seconds after which the next RADIUS server in
                 the table is contacted for login authentication."
            DEFVAL                              { 1 }
            ::= { nishanCommonAuthRadiusServerEntry 7 }
            
        nishanCommonAuthRadiusServerRetries   OBJECT-TYPE
            SYNTAX                            INTEGER (1..5)
            MAX-ACCESS                        read-write
            STATUS                            current
            DESCRIPTION
                "DURABLE: {1}
                 The number of retries after which the next RADIUS server in
                 the table is contacted for login authentication."
            DEFVAL                              { 1 }
            ::= { nishanCommonAuthRadiusServerEntry 8 }
            
        
        --
        -- Nishan Extension MIB, Trap Group              
        --
        -- Here begins the trap and destination tables which
        -- provide configured SNMP Trap capability to the SNMPv1 agent.
        --
        -- A "TestTrap" facility is provided to test the trap subsystem.
        -- See "nishanCommonTrapTest". 
        --
        -- The nishanCommonTrapCommTable lists the communities which hosts in 
        -- the nishanCommonTrapDestTable belong to.  The nishanCommonTrapCommTable 
        -- defines types of SNMP traps which destinations belonging to these    
        -- communities are sent.
        --
        -- EXAMPLES:
        --
        --  A Representative Trap Community Table....
        --
        --             nishanCommonTrapCommTable
        --
        --                  Cold  Link Link                OEM  
        --    Index  Name   Start Down  Up  Auth 1493 RMON Spec State
        --   --------------------------------------------------------
        --   |  1  |public |  1  | 1  | 1  | 2  | 1  | 1  | 1  | 1  |
        --   --------------------------------------------------------
        --   |  2  |netman |  2  | 1  | 1  | 1  | 1  | 1  | 1  | 1  |
        --   --------------------------------------------------------
        --   |  3  |private|  2  | 1  | 1  | 1  | 1  | 1  | 1  | 1  |
        --   --------------------------------------------------------
        --   |     |       |     |    |    |    |    |    |    |    |
        --      .      .      .     .    .    .    .    .    .    .          
        --      .      .      .     .    .    .    .    .    .    .          
        --      .      .      .     .    .    .    .    .    .    .
        --   |  7  |                |           |    |    |    |    |
        --   --------------------------------------------------------
        --   |  8  |admin  |  2  | 1  | 1  | 1  | 1  | 1  | 1  | 1  |
        --   --------------------------------------------------------
        --                                                     
        --  A Representative Trap Host (Destination) Table....
        --
        --                       nishanCommonAuthHostTable
        --                    
        --    Index  Name   CommName  IPAddress    IPMask        State
        --   --------------------------------------------------------------
        --   |  1  |host1  |public  | 1.2.3.4  | 255.255.255.0|2 (disable)|
        --   --------------------------------------------------------------
        --   |  2  |host2  |public  | 1.2.2.4  | 255.255.255.0|1 (enable) |
        --   --------------------------------------------------------------
        --   |  3  |ntbox  |netman  | 2.3.4.5  | 255.255.255.0|1 (enable) |
        --   --------------------------------------------------------------
        --   |  4  |sunbox |xyz     | 3.4.5.6  | 255.255.255.0|1 (enable) |
        --   --------------------------------------------------------------
        --   |     |       |        |          |              |           |
        --      .      .        .         .          
        --      .      .        .         .          
        --      .      .        .         .  
        --   |  7  |       |        |          |              |           |
        --   --------------------------------------------------------------
        --   |  8  |macbox |admin   | 4.3.2.1  | 255.255.255.0|3 (delete) |
        --   --------------------------------------------------------------
        --
        --   <need examples>
        --

        nishanCommonTrapTest OBJECT-TYPE
            SYNTAX INTEGER {
                   noop            (1),
                   coldstart       (2),
                   linkdown        (3),
                   linkup          (4),
                   authentication  (5),
                   oemspecific     (6)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "This object sends a particular kind of SNMP Trap, as
                 selected by type, to the SNMP manager to verify proper
                 operation of the Trap Subsystem. A GET always returns
                 the noop (1) value."  
            ::= { nishanCommonTrapGroup 1 }

        nishanCommonTrapCommTableEntriesMax OBJECT-TYPE
            SYNTAX INTEGER (1..8)
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { 8 }
                 The total number of entries in the nishanCommonTrapCommTable. 
                 This value equates to the total number of communities   
                 which potentially can be recognized."
            ::= { nishanCommonTrapGroup 2 }

        nishanCommonTrapDestTableEntriesMax OBJECT-TYPE
            SYNTAX INTEGER (1..8)
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { 8 }
                 The total number of entries in the nishanCommonTrapDestTable. 
                 This equates to the total number of hosts which can 
                 potentially be sent SNMP traps."
            ::= { nishanCommonTrapGroup 3 }

        nishanCommonTrapCommTable OBJECT-TYPE
            SYNTAX SEQUENCE OF NishanCommonTrapCommEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A list of valid SNMP Community Entries used for Traps."
            ::= { nishanCommonTrapGroup 4 }

        nishanCommonTrapCommEntry OBJECT-TYPE
            SYNTAX NishanCommonTrapCommEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A list of SNMP Trap Community properties."
            INDEX { nishanCommonTrapCommIndex }
            ::= { nishanCommonTrapCommTable 1 }

--
--      NOTE:  WarmStart and EgpNeighborLoss Traps are not supported.
--
        NishanCommonTrapCommEntry ::= SEQUENCE {
            nishanCommonTrapCommIndex             INTEGER,
            nishanCommonTrapCommName              DisplayString,
            nishanCommonTrapCommColdStart         INTEGER,
            nishanCommonTrapCommLinkDown          INTEGER,
            nishanCommonTrapCommLinkUp            INTEGER,
            nishanCommonTrapCommAuthentication    INTEGER,
            nishanCommonTrapCommBridge            INTEGER,
            nishanCommonTrapCommRMON              INTEGER,
            nishanCommonTrapCommOEMSpecific       INTEGER,
            nishanCommonTrapCommState             INTEGER
        }

        nishanCommonTrapCommIndex OBJECT-TYPE
            SYNTAX INTEGER (1..8)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "An index that uniquely identifies an ordered entry in 
                 the SNMP Community Trap Table."
            ::= { nishanCommonTrapCommEntry 1 }

        nishanCommonTrapCommName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..16))
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { 'public' }
                 The name of this SNMP Trap Community Entry, e.g. public."
            ::= { nishanCommonTrapCommEntry 2 }

        nishanCommonTrapCommColdStart OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { enable:all }
                 Enable (1) or Disable (2) the SNMP ColdStart Trap for this
                 SNMP community."
            ::= { nishanCommonTrapCommEntry 3 }

        nishanCommonTrapCommLinkDown  OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { enable:all }
                 Enable (1) or Disable (2) the SNMP Link Down traps for this
                 SNMP community."
            ::= { nishanCommonTrapCommEntry 4 }

        nishanCommonTrapCommLinkUp OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { enable:all }
                 Enable (1) or Disable (2) the SNMP Link Up traps for this
                 SNMP community."
            ::= { nishanCommonTrapCommEntry 5 }

        nishanCommonTrapCommAuthentication OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { enable:all }
                 Enable (1) or Disable (2) the SNMP Authenticaiton traps for
                 this SNMP community."
            ::= { nishanCommonTrapCommEntry 6 }

        nishanCommonTrapCommBridge OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { enable:all }
                 Enable (1) or Disable (2) the SNMP Bridge MIB       
                 traps for this SNMP community."  
            ::= { nishanCommonTrapCommEntry 7 }

        nishanCommonTrapCommRMON OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { enable:all }
                 Enable (1) or Disable (2) the SNMP RMON traps      
                 for this SNMP community."  
            ::= { nishanCommonTrapCommEntry 8 }

        nishanCommonTrapCommOEMSpecific OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { enable:all }
                 Enable (1) or Disable (2) the SNMP Enterprise traps     
                 for this SNMP community."  
            ::= { nishanCommonTrapCommEntry 9 }

        nishanCommonTrapCommState OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2),
                   delete(3),
                   invalid(4)         -- read-only, set returns SNMP_BADVALUE
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { enable:all }
                 The state of this community entry.  Enable (1) defines an
                 entry that is valid.  Disable (2) defines an entry that is
                 valid but not enabled.  Delete (3) removes an entry from the
                 table.  Invalid (4) defines an entry that is no longer valid
                 (e.g., an entry that was deleted) and should be ignored.  An 
                 attempt to set a value of invalid (4) causes the agent to
                 return SNMP_BADVALUE."
            ::= { nishanCommonTrapCommEntry 10 }

        nishanCommonTrapDestTable OBJECT-TYPE
            SYNTAX SEQUENCE OF NishanCommonTrapDestEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A list of valid SNMP Trap Trusted Host Destination entries."
            ::= { nishanCommonTrapGroup 5 }

        nishanCommonTrapDestEntry OBJECT-TYPE
            SYNTAX NishanCommonTrapDestEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A list of SNMP Trap Trusted Host Destination properties."
            INDEX { nishanCommonTrapDestIndex }
            ::= { nishanCommonTrapDestTable 1 }

        NishanCommonTrapDestEntry ::= SEQUENCE {
            nishanCommonTrapDestIndex             INTEGER,
            nishanCommonTrapDestName              DisplayString,
            nishanCommonTrapDestCommName          DisplayString,
            nishanCommonTrapDestIpAddress         IpAddress,
            nishanCommonTrapDestIpMask            IpAddress,
            nishanCommonTrapDestState             INTEGER   
        }

        nishanCommonTrapDestIndex  OBJECT-TYPE
            SYNTAX INTEGER (1..8)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "An index that uniquely identifies an ordered entry in 
                 the SNMP Trusted Host Destination Table."
            ::= { nishanCommonTrapDestEntry 1 }

        nishanCommonTrapDestName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..16))
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE:
                 The name of this SNMP Trusted Host Destination Entry, 
                 e.g. Admin."
            ::= { nishanCommonTrapDestEntry 2 }

        nishanCommonTrapDestCommName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..16))
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE:
                 The name of this SNMP Trusted Host Destination Entry's 
                 community, e.g., public, or trap."
            ::= { nishanCommonTrapDestEntry 3 }

        nishanCommonTrapDestIpAddress OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE:
                 The IP Address for the host. This identified host has
                 permission to access information in this device's
                 MIB tables, providing the SNMP security toggle is 
                 on (see nishanCommonMiscSNMPSecurity)."
            ::= { nishanCommonTrapDestEntry 4 }

        nishanCommonTrapDestIpMask OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { 'ffffff00'H:all }
                 The Network Mask for the trusted Host Destination entry."
            ::= { nishanCommonTrapDestEntry 5 }

        nishanCommonTrapDestState OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2),
                   delete(3),
                   invalid(4)         -- read-only, set returns SNMP_BADVALUE
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { enable,disable:all }
                 The state of this trusted trap destination entry.  Enable (1)
                 defines an entry that is valid.  Disable (2) defines an entry
                 that is valid but not enabled.  Delete (3) removes an entry 
                 from the table.  Invalid (4) defines an entry that is no
                 longer valid (e.g., an entry that was deleted) and should be
                 ignored.  An attempt to set a value of invalid (4) causes the
                 agent to return SNMP_BADVALUE."
            ::= { nishanCommonTrapDestEntry 6 }

        --
        -- Nishan Extension MIB, Load TFTP Group                    
        --
        -- This group is meant to be a collection of controls and data 
        -- that determine the file download and upload configuration
        -- and mode. 
        --

        nishanCommonLoadTftpAddress OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set IP Address for the TFTP server used for downloading
                 and uploading files." 
            ::= { nishanCommonLoadGroup 1 }

        nishanCommonLoadTftpFileName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..64))
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set TFTP file path and name."
            ::= { nishanCommonLoadGroup 2 }

        nishanCommonLoadType OBJECT-TYPE
            SYNTAX INTEGER {
                   application(1),
                   boot(2),
                   configuration(3)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The type of file to download or upload upon an 
                 nishanCommonLoadExecute.  WARNING: The boot should only be 
                 downloaded when absolutely required (e.g., if power is
                 removed during the boot Flash write operation, the agent
                 cannot be recovered)."
            ::= { nishanCommonLoadGroup 3 }

        nishanCommonLoadExecute OBJECT-TYPE
            SYNTAX INTEGER {
                   noop(1),         -- no operation
                   download(2),     -- Application, Boot, or Configuration
                   upload(3)        -- Configuration only
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Execute file download or upload procedure.  A SET of this
                 object starts the load procedure.  Note that the Application
                 and Boot images can only be downloaded.  The Configuration
                 file can be uploaded and downloaded.  A GET of this object
                 will return a noop (1). Use nishanCommonLoadExecuteStatus to
                 determine the status of the executed load." 
            ::= { nishanCommonLoadGroup 4 }

        nishanCommonLoadExecuteStatus OBJECT-TYPE
            SYNTAX INTEGER {
                   notStarted(1),         
                   inProgress(2),
                   success(3),
                   errorConnection(4),
                   errorFilename(5),
                   errorFault(6)
            }
            MAX-ACCESS read-only 
            STATUS current
            DESCRIPTION
                "Provides status on the execute file load procedure.
                 The status return is given by one of the enumerated codes
                   not-started       (download has not yet started)
                   in-progress       (download has not yet finished)
                   success           (download has finished successfully)
                   error-connection  (download cannot connect)
                   error-filename    (download has bad image path/filename)
                   error-fault       (download has fault condition on device)."
            ::= { nishanCommonLoadGroup 5 }

        --
        -- Nishan Extension MIB, Miscellaneous Information         
        --
        -- This group is meant to be a collection of controls and data 
        -- that do not require a group of their own, or fall into the 
        -- category of "miscellaneous".  The user may easily add simple 
        -- objects in this group without destroying the integrity or definition
        -- of the group.
        --

        nishanCommonMiscSaveToNvm OBJECT-TYPE
            SYNTAX INTEGER {
                   noop(1),    -- no operation
                   save(2)     -- save all configuration parameters to NVM
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "When set to save (2), all nonvolatile configuration
                 parameters are saved to NVM (Nonvolatile Memory).  NVM save
                 operations may be slow (e.g., erasing/writing Flash device).
                 Consequently, all (or many) updates should be made before
                 saving to NVM.  A get operation always returns noop (1)"
            ::= { nishanCommonMiscGroup 1 }

        nishanCommonMiscSnmpSecurityOnOff OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "NONVOLATILE: { disable }
                 Enable/Disable SNMP Security. A (1) enables, a (2) disables.
                 This object controls the application of the Community and 
                 Host tables.  WARNING:  If SNMP security is disabled, 
                 ANY HOST has access to the SNMP agent.  See 
                 nishanCommonAuthenGroup and nishanCommonTrapGroup."
            ::= { nishanCommonMiscGroup 2 }

        nishanCommonMiscSpanOnOff OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Enable/Disable Spanning Tree. A (1) enables, a (2) disables.
                 When disabled, the ports of the device are placed in the
                 forwarding mode, regardless of current Spanning Tree state.
                 When re-enabled, the normal state transitions take place."
            ::= { nishanCommonMiscGroup 3 }

        nishanCommonMiscBOOTPOnOff OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Enable/Disable BOOTP operation. A (1) enables, a (2) disables.
                 When disabled, no BOOTPs are transmitted by the Application.
                 When enabled, the Application sends up to 3 BOOTP requests at
                 5 second intervals."
            ::= { nishanCommonMiscGroup 4 }

        nishanCommonMiscDHCPOnOff OBJECT-TYPE
            SYNTAX INTEGER {
                   enable(1),
                   disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Enable/Disable DHCP operation. A (1) enables, a (2) disables.
                 When disabled, no DHCPs are transmitted by the Application.
                 When enabled, the Application sends up to 3 DHCP requests at
                 5 second intervals."
            ::= { nishanCommonMiscGroup 5 }

        nishanCommonMiscBaud OBJECT-TYPE
            SYNTAX INTEGER {
                   baud2400(1),
                   baud9600(2),
                   baud19200(3),
                   baud38400(4)
            } 
            MAX-ACCESS read-write 
            STATUS current
            DESCRIPTION
                "The Serial port BAUD Rate.  Attributes are 8 Start Bits,
                 no parity and 1 stop bits (8N1) and Hardware Flow Control.
                 Valid values are 2400, 9600, 19200, and 38400."
            ::= { nishanCommonMiscGroup 6 }

        nishanCommonMiscPassword OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..16))
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Get and Set the system password."
            ::= { nishanCommonMiscGroup 7 }

        nishanCommonMiscProductName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..32))
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Get and Set the product name of this agent's device.
                 This name is shown in user interface screens." 
            ::= { nishanCommonMiscGroup 8 }

        nishanCommonMiscReset OBJECT-TYPE
            SYNTAX INTEGER {
                   noop(1),             -- no operation
                   reset(2),            -- reset unit
                   resetToDefaults(3)   -- reset to factory defaults
                                        --   and then reset unit
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Physically performs a hardware reset of the unit. 
                 Use with care.  A reset (2) resets the unit, a
                 reset-to-defaults (3) resets the nonvolatile configuration
                 to factory defaults and then resets the unit, and noop (1) 
                 does nothing.  A value of noop (1) is always returned for a
                 GET operation."
            ::= { nishanCommonMiscGroup 9 }

--
--  Common Group Ends  
--

--
--  Architecture Group Begins  
--
        --
        -- Nishan Extension MIB, Architecture Group, Interface Information  
        --
        -- This group provides interface control and information not easily
        -- available from other MIBs.
        --
        -- Generic switches have <unit>.<slot>.<port> topology
        -- Any port designator amy be described in this manner.
        --
        -- The port topology supported by the Nishan FC reference  
        -- platform is of the form <unit>.<port> since there are no
        -- slots.  The units may be stacked up to 4 high.  Each unit 
        -- has 24 10/100 Ports and 2 1000 Ports.  Port designators will 
        -- then have the form <unit>.<port>, where unit may range from 1 
        -- through 4 and port may range from 1 through 26.
        --
        -- The maximum configuration is shown below:
        --
        --           ---- Ports ----
        --  Unit     10/100    1000
        --   4      < 1 - 24   25,26 >
        --   3      < 1 - 24   25,26 >      4 units x 26 ports 
        --   2      < 1 - 24   25,26 >          = 104 unique interfaces
        --   1      < 1 - 24   25,26 >
        --
        -- The <unit>.<port> numbering scheme translates into a logical
        -- port numbering scheme which can best be described as
        -- linear with holes.  These "holes" accomodate missing units or
        -- virtual ports such as trunks.  Logical ports track the physical
        -- ports on a one-to-one correspondence, with the holes being
        -- "extra" ports to be defined.  For example, logical port 26 is
        -- physical unit 1, port 26.  Logical port 66 is physical unit 3,
        -- port 2.  The translation is shown below:
        --
        --           ---- Ports ----
        --  Unit     10/100    1000          Logical Ports
        --   4      < 1 - 24   25,26 >        < 97 - 122 >
        --   3      < 1 - 24   25,26 >        < 65 - 90  >
        --   2      < 1 - 24   25,26 >        < 33 - 58  >
        --   1      < 1 - 24   25,26 >        < 1  - 26  >
        --
        --

        nishanArchIfaceTable OBJECT-TYPE
            SYNTAX SEQUENCE OF NishanArchIfaceEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A list of Interfaces and their properties"
            ::= { nishanArchIfaceGroup 1 }

        nishanArchIfaceEntry OBJECT-TYPE
            SYNTAX NishanArchIfaceEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An index of interfaces."
            INDEX { nishanArchIfaceUnit, nishanArchIfacePort }
            ::= { nishanArchIfaceTable 1 }

        NishanArchIfaceEntry ::= SEQUENCE {
            nishanArchIfaceUnit                  INTEGER,
            nishanArchIfacePort                  INTEGER,
            nishanArchIfaceLogicalPort           INTEGER,
            nishanArchIfaceName                  DisplayString,
            nishanArchIfaceType                  INTEGER,
            nishanArchIfaceEnable                INTEGER,
            nishanArchIfaceSTPEnable             INTEGER,
            nishanArchIfaceLink                  INTEGER,
            nishanArchIfaceDuplexSpeedSet        INTEGER,
            nishanArchIfaceDuplexSpeedGet        INTEGER,
            nishanArchIfaceTXOctetsNoErr         Counter32,
            nishanArchIfaceTXPacketsNoErr        Counter32,
            nishanArchIfaceRXOctetsNoErr         Counter32,
            nishanArchIfaceRXPacketsNoErr        Counter32
        }

        nishanArchIfaceUnit OBJECT-TYPE
            SYNTAX INTEGER (1..4)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "An index that uniquely identifies a unit in the Nishan/FC
                 Interface Table."
            ::= { nishanArchIfaceEntry 1 }

        nishanArchIfacePort OBJECT-TYPE
            SYNTAX INTEGER (1..32)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "An index that uniquely identifies a port within the unit
                 in the Nishan/FC Interface Table."
            ::= { nishanArchIfaceEntry 2 }

        nishanArchIfaceLogicalPort OBJECT-TYPE
            SYNTAX INTEGER (1..128)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "An index that uniquely identifies a port in the Nishan/FC 
                 Interface Table.  This is a linear port number that may
                 may have holes (e.g., missing units).  For this MIB,
                 32 port numbers are reserved for each unit in the stack.
                 For example, port 101 is unit 4, port 5"
            ::= { nishanArchIfaceEntry 3 }

        nishanArchIfaceName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..16))
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The textual name of this interface, e.g., 'John'."
            ::= { nishanArchIfaceEntry 4 }

        nishanArchIfaceType OBJECT-TYPE
            SYNTAX  INTEGER {
                 other(1),          -- none of the following
                 regular1822(2),
                 hdh1822(3),
                 ddnX25(4),
                 rfc877X25(5),
                 ethernetCSMACD(6),
                 iso88023CSMACD(7),
                 iso88024TokenBus(8),
                 iso88025TokenRing(9),
                 iso88026Man(10),
                 starLan(11),
                 proteon10Mbit(12),
                 proteon80Mbit(13),
                 hyperchannel(14),
                 fddi(15),
                 lapb(16),
                 sdlc(17),
                 ds1(18),           -- T-1
                 e1(19),            -- european equiv. of T-1
                 basicISDN(20),
                 primaryISDN(21),   -- proprietary serial
                 propPointToPointSerial(22),
                 ppp(23),
                 softwareLoopback(24),
                 eon(25),            -- CLNP over IP [11]
                 ethernet3Mbit(26),
                 nsip(27),           -- XNS over IP
                 slip(28),           -- generic SLIP
                 ultra(29),          -- ULTRA technologies
                 ds3(30),            -- T-3
                 sip(31),            -- SMDS
                 frameRelay(32)
            }
            MAX-ACCESS read-only 
            STATUS current
            DESCRIPTION
                "The type of interface, repeated here from the definitions
                 in RFC1213 as a matter of convenience."
            ::= { nishanArchIfaceEntry 5 }

        nishanArchIfaceEnable OBJECT-TYPE
            SYNTAX INTEGER {
                enable(1),
                disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Enable (1) and Disable (2) control for the interface.
                 For this product, this is the ONLY way to enable or
                 disable the interface.  'ifAdminStatus' in RFC1213 and 
                 'dot1dStpPortEnable' in RFC1493 are both implemented
                 as 'read-only'."
            ::= { nishanArchIfaceEntry 6 }

        nishanArchIfaceSTPEnable OBJECT-TYPE
            SYNTAX INTEGER {
                enable(1),
                disable(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Enable (1) and Disable (2) Spanning Tree operation for this
                 interface."
            ::= { nishanArchIfaceEntry 7 }

        nishanArchIfaceLink OBJECT-TYPE
            SYNTAX INTEGER {
                 up(1), 
                 down(2)
            }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The state of Link Detect on the interface."
            ::= { nishanArchIfaceEntry 8 }

        nishanArchIfaceDuplexSpeedSet OBJECT-TYPE
            SYNTAX INTEGER {
                 autonegotiate(1),
                 half10(2),
                 full10(3),
                 half100(4),
                 full100(5),
                 full1000(6),
                 illegal(99)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "he desired speed and duplex for the interface. If the selected
                control is not possible on the interface, a value of (99)
                illegal is returned.  If the port type does NOT support the
                default of autonegotiate (1), then the application will
                initialize the port to a valid value (e.g., 1000full (6)). 
                Note that not all controls are possible for all interfaces.
                For example, only full-1000 (6) is available for Gigabit
                Ethernet interfaces."
            ::= { nishanArchIfaceEntry 9 }

        nishanArchIfaceDuplexSpeedGet OBJECT-TYPE
            SYNTAX INTEGER {
                 unknown(1),
                 half10(2),
                 full10(3),
                 half100(4),
                 full100(5),
                 full1000(6),
                 illegal(99)
            }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The actual speed and duplex for the interface. If the
                interface is not configured to one of the acceptable
                values, a value of illegal (99) is returned." 
            ::= { nishanArchIfaceEntry 10 }

        nishanArchIfaceTXOctetsNoErr OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The number of octets transmitted from the interface. This
                 number does not include octets in error."
            ::= { nishanArchIfaceEntry 11 }

        nishanArchIfaceTXPacketsNoErr OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The number of packets transmitted from the interface. This
                 number does not include packets in error."
            ::= { nishanArchIfaceEntry 12 }

        nishanArchIfaceRXOctetsNoErr OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The number of octets received on the interface. This
                 number does not include octets in error."
            ::= { nishanArchIfaceEntry 13 }

        nishanArchIfaceRXPacketsNoErr OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The number of packets received on the interface. This
                 number does not include packets in error."
            ::= { nishanArchIfaceEntry 14 }

--
--  Architecture Group Ends    
--
--
--  Chip Group Begins  
--
        nishanChipStub OBJECT-TYPE
            SYNTAX INTEGER {  
                noop(1),
                chipValue2(2),
                chipValue3(3)
            }
            MAX-ACCESS read-write
            STATUS current
          DESCRIPTION
                "This object is a placeholder for the nishanChipGroup." 
            ::= { nishanChipGroup 1 }
--
--  Chip Group Ends    
--

--
--  Sample  Enterprise TRAP
--

--            nishanTrap TRAP-TYPE
--            ENTERPRISE nishan
--            DESCRIPTION
--                 "This trap is used for the sample enterprise trap in the
--                  nishanCommonTrapTest object and as an example for developers
--                  of custom enterprise MIBs."
--            ::= 1
END